1 追蹤者

Helpers

注意:本節仍在開發中。

Yii 提供了許多類別來簡化常見的編碼任務,例如字串或陣列操作、HTML 程式碼產生等等。這些 helper 類別組織在 yii\helpers 命名空間下,並且都是靜態類別(意味著它們僅包含靜態屬性和方法,不應被實例化)。

您可以透過直接呼叫 helper 類別的靜態方法來使用它,如下所示:

use yii\helpers\Html;

echo Html::encode('Test > test');

注意:為了支援自訂 helper 類別,Yii 將每個核心 helper 類別分解為兩個類別:一個基礎類別(例如 BaseArrayHelper)和一個具體類別(例如 ArrayHelper)。當您使用 helper 時,您應該僅使用具體版本,而永遠不要使用基礎類別。

核心 Helper 類別

Yii 版本中提供了以下核心 helper 類別:

  • ArrayHelper
  • Console
  • FileHelper
  • FormatConverter
  • Html
  • HtmlPurifier
  • Imagine (由 yii2-imagine 擴展提供)
  • Inflector
  • Json
  • Markdown
  • StringHelper
  • Url
  • VarDumper

自訂 Helper 類別

要自訂核心 helper 類別(例如 yii\helpers\ArrayHelper),您應該建立一個新類別,從 helper 對應的基礎類別(例如 yii\helpers\BaseArrayHelper)擴展而來,並將您的類別命名為與對應的具體類別相同的名稱(例如 yii\helpers\ArrayHelper),包括其命名空間。然後,將設定此類別以取代框架的原始實作。

以下範例示範如何自訂 merge() 方法 yii\helpers\ArrayHelper 類別

<?php

namespace yii\helpers;

class ArrayHelper extends BaseArrayHelper
{
    public static function merge($a, $b)
    {
        // your custom implementation
    }
}

將您的類別儲存在名為 ArrayHelper.php 的檔案中。該檔案可以位於任何目錄中,例如 @app/components

接下來,在您應用程式的進入點腳本中,在包含 yii.php 檔案後新增以下程式碼行,以告知 Yii 類別自動載入器 載入您的自訂類別,而不是框架的原始 helper 類別:

Yii::$classMap['yii\helpers\ArrayHelper'] = '@app/components/ArrayHelper.php';

請注意,只有當您想要變更 helper 現有函數的行為時,自訂 helper 類別才有用。如果您想要新增其他函數以在您的應用程式中使用,那麼您最好為此建立一個單獨的 helper。

發現錯字或您認為此頁面需要改進?
在 github 上編輯 !